<?php

/*
|--------------------------------------------------------------------------
| Application & Route Filters
|--------------------------------------------------------------------------
|
| Below you will find the "before" and "after" events for the application
| which may be used to do any work before or after a request into your
| application. Here you may also register your custom route filters.
|
*/

App::before(function($request)
{
	if(Auth::check() && $request->path() != 'login' && $request->path() != 'logout')
    {
        // Cek Lingkungan jika masih kosong redirect ke Lingkungan untuk pengaturan awal
    	if(Lingkungan::active()->count() == 0
    		&& $request->path() != 'pengaturan/lingkungan'
    		&& $request->path() != 'provinsis/combo-view-kabupatens'
    		&& $request->path() != 'kabupatens/combo-view-kecamatans'
    		&& $request->path() != 'kecamatans/combo-view-kelurahans'
            && $request->path() != 'pengaturan/lingkungan-update'
            && $request->path() != 'kipem/notif-count') {
    		return Redirect::route('lingkungan');
    	}
    }
});


App::after(function($request, $response)
{
});

/*
|--------------------------------------------------------------------------
| Authentication Filters
|--------------------------------------------------------------------------
|
| The following filters are used to verify that the user of the current
| session is logged into this application. The "basic" filter easily
| integrates HTTP Basic authentication for quick, simple checking.
|
*/

Route::filter('auth', function()
{
	if (Auth::guest()){
		return Redirect::guest('');
	}
});


Route::filter('auth.basic', function()
{
	return Auth::basic();
});

/*
|--------------------------------------------------------------------------
| Guest Filter
|--------------------------------------------------------------------------
|
| The "guest" filter is the counterpart of the authentication filters as
| it simply checks that the current user is not logged in. A redirect
| response will be issued if they are, which you may freely change.
|
*/

Route::filter('guest', function()
{
	if (Auth::check()) return Redirect::to('/');
});

/*
|--------------------------------------------------------------------------
| CSRF Protection Filter
|--------------------------------------------------------------------------
|
| The CSRF filter is responsible for protecting your application against
| cross-site request forgery attacks. If this special token in a user
| session does not match the one given in this request, we'll bail.
|
*/

Route::filter('csrf', function()
{
	if (Session::token() != Input::get('_token'))
	{
		throw new Illuminate\Session\TokenMismatchException;
	}
});

Route::filter('admin', function()
{
  if ( Auth::user()->user_type !==0) {
     // do something
     return Redirect::to('/');
   }
});

App::missing(function($exception)
{
    return Response::view('contoh.not-found', array('url' => Request::url()), 404);
});